package com.service.acl.controller;


import com.service.acl.pojo.Role;
import com.service.acl.service.RoleService;
import com.service.utils.ResultVo;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author testjava
 * @since 2020-10-22
 */
@RestController
@RequestMapping("role")
public class RoleController {

    @Autowired
    private RoleService roleService;


    @GetMapping
    @ApiOperation("查询所有管理员用户角色信息")
    public ResultVo list() {
        List<Role> list = roleService.list(null);
        return ResultVo.ok().data("items", list);
    }

    /**
     * 查询指定的管理员用户角色信息
     *
     * @param id
     * @return
     */
    @ApiOperation("查询指定的管理员用户角色信息")
    @GetMapping("{id}")
    public ResultVo queryById(@ApiParam(name = "id", value = "指定查询的管理员用户角色ID", required = true) @PathVariable String id) {
        Role role = roleService.getById(id);
        return ResultVo.ok().data("item", role);
    }

    /**
     * 删除指定的管理员用户角色信息
     *
     * @param id
     * @return
     */
    @ApiOperation("逻辑删除管理员用户角色信息")
    @DeleteMapping("{id}")
    public ResultVo delete(@ApiParam(name = "id", value = "逻辑删除的管理员用户角色ID", required = true) @PathVariable String id) {
        roleService.delete(id);

        return ResultVo.ok();

    }

    /**
     * 修改管理员用户角色信息
     *
     * @param role
     * @return
     */
    @ApiOperation("修改管理员用户角色信息")
    @PutMapping
    public ResultVo update(@RequestBody Role role) {
        role.setGmtModified(new Date());
        boolean b = roleService.updateById(role);
        if (b) {
            return ResultVo.ok();
        }
        return ResultVo.error();
    }

    /**
     * 添加管理员用户角色信息
     *
     * @param role
     * @return
     */
    @ApiOperation("添加管理员用户角色信息")
    @PostMapping
    public ResultVo save(@RequestBody Role role) {
        role.setGmtModified(new Date());
        role.setGmtCreate(new Date());
        boolean b = roleService.save(role);
        if (b) {
            return ResultVo.ok();
        }
        return ResultVo.error();
    }


}

